package com.itheima.health.service.impl;

import com.itheima.health.dao.MemberDao;
import com.itheima.health.dao.OrderDao;
import com.itheima.health.pojo.LineData;
import com.itheima.health.pojo.MemberReport;
import com.itheima.health.pojo.Order;
import com.itheima.health.service.MemberService;

import lombok.extern.slf4j.Slf4j;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.*;

@Service
@Slf4j
public class MemberServiceImpl implements MemberService {

    @Autowired
    private MemberDao memberDao;



    @Override
    public MemberReport getMemberReport() {


        List<LineData> LineDateList = memberDao.getMemberReport();

        //创建一个新的Integer数组
        Integer[]  memberCountArray= new Integer[12];

        //创建一个新的String[]数组
        String[] monthsArray = new String[12];

        for (int i = 0; i <LineDateList.size() ; i++) {

            memberCountArray[i]=LineDateList.get(i).getMemberCount();
            monthsArray[i]=LineDateList.get(i).getMonth();
        }


        for (Integer integer : memberCountArray) {
            System.out.println(integer);

        }

        /*连续12个月中，第一个月份应加上之前的所有会员数据，
        最后一个月份应为当前月的所有会员数据与上个月的会员总数的和。*/

        //获取当前日期列表的第一个日期
        String month = monthsArray[0];

        //查询在month之前的所有会员数
        Integer beforeCount = memberDao.getBeforeMembership(month);

        //创建一个新的Integer数组
        Integer[]  newMemberCount= new Integer[12];


        for (int i = 0; i < memberCountArray.length; i++) {
            if (i==0){
                //第一个月份应加上之前的所有会员数据
                newMemberCount[i]=beforeCount+memberCountArray[0];

            }
            else if (i==11){
                //最后一个月份应为当前月的所有会员数据与上个月的会员总数的和
                newMemberCount[i]=memberCountArray[i-1]+memberCountArray[i];

            }else{
                newMemberCount[i]=memberCountArray[i];
            }

        }



        log.info("会员列表:{}",newMemberCount);



        return new MemberReport(monthsArray,newMemberCount);
    }



}
